package cn.lili.modules.store.service;

import cn.lili.common.vo.PageVO;
import cn.lili.modules.store.entity.dos.FreightTemplate;
import cn.lili.modules.store.entity.vos.FreightTemplateVO;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/**
 * 店铺地址（自提点）详细业务层
 *
 * @author Bulbasaur
 * @since 2020-03-07 09:24:33
 */
public interface FreightTemplateService extends IService<FreightTemplate> {

	/**
	 * 获取当前商家的运费模板列表
	 *
	 * @param pageVO
	 *            分页
	 * @return 运费模板列表
	 */
	IPage<FreightTemplate> getFreightTemplate(PageVO pageVO);

	/**
	 * 获取商家的运费模板
	 *
	 * @param storeId
	 * @return 运费模板列表
	 */
	List<FreightTemplateVO> getFreightTemplateList(String storeId);

	/**
	 * 获取运费模板详细信息
	 *
	 * @param id
	 *            运费模板ID
	 * @return 运费模板
	 */
	FreightTemplateVO getFreightTemplate(String id);

	FreightTemplate getFreightTemplateAndStore(String name, String storeId);

	/**
	 * 添加商家运费模板 运费模板分为卖家包邮、运费计算两种类型
	 *
	 * @param freightTemplateVO
	 *            运费模板
	 * @return 运费模板
	 */
	FreightTemplateVO addFreightTemplate(FreightTemplateVO freightTemplateVO);

	/**
	 * 修改商家运费模板
	 *
	 * @param freightTemplateVO
	 *            运费模板
	 * @return 运费模板
	 */
	FreightTemplateVO editFreightTemplate(FreightTemplateVO freightTemplateVO);

	/**
	 * 删除商家运费模板 删除模板并删除模板的配置内容
	 *
	 * @param id
	 *            运费模板ID
	 * @return 操作状态
	 */
	boolean removeFreightTemplate(String id);

}